package per.turtle.common.mq.service;

import org.springframework.lang.Nullable;
import per.turtle.common.mq.enums.ExchangeTypeEnum;
import per.turtle.common.mq.po.Msg;

/**
 * 消息发布服务
 *
 * @author yuj
 */
public interface MqProducerService {

    /**
     * 通过交换机发布消息给队列@link ExchangeTypeEnum。
     *
     * @param exchangeTypeEnum mq交换机类型枚举
     * @param routingKey       路由键（{@link ExchangeTypeEnum}的FANOUT不需要传）
     * @param msg              消息
     */
    void publishMsg(ExchangeTypeEnum exchangeTypeEnum, @Nullable String routingKey, Msg msg);

}
